// 处理请求参数
function handleParam(json) {
	const arr = [];
	for (let i in json) {
		arr.push(i + '=' + json[i])
	}
	return arr.json('&')
}
/**
 * 1、获取异步实例xhr(需要做兼容处理)
 * 2、xhr.open()打开异步方式
 * 3、xhr.send()发送异步请求
 */

function ajax(o) {
	return new Promise((resolve, reject) => {
		o = o || {};
		o.type = o.type || "get"; //设置请求方式默认值
		o.data = o.data || {}; // 设置请求参数默认值
		var xhr = null; // 异步请求变量

		xhr = (window.XMLHttpRequest) ? 
				new XMLHttpRequest() :
				new ActiveXObject("Microsoft.XMLHTTP");

	 	if (type === 'get') {
	 		a.url += "?" + handleParam(o.data) + '&t=' + new Date().getTime();
	 		xhr.open("get", a.url, true);
	 		xhr.send();
	 	} else (type === 'post') {
	 		xhr.open("post", a.url, true);
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send(handleParam(a.data))
	 	}

	 	// 请求成功后的回调
	 	xhr.onreadystatechange = function() {
	 		if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    resolve(JSON.parse(xhr.responseText));
                } else {
                    reject("Err:" + xhr.status)
                }
            }
	 	}
	})
}
